Skip to content

HBASE-30079 Upgrade hbase-compression to use junit5#8169

Merged
liuxiaocs7 merged 2 commits intoapache:branch-2.5from
liuxiaocs7:HBASE-30079-branch-2.5
Apr 30, 2026
Merged

HBASE-30079 Upgrade hbase-compression to use junit5#8169
liuxiaocs7 merged 2 commits intoapache:branch-2.5from
liuxiaocs7:HBASE-30079-branch-2.5

Conversation

@liuxiaocs7
Copy link
Copy Markdown
Member

@liuxiaocs7 liuxiaocs7 requested a review from Copilot April 29, 2026 16:19
@liuxiaocs7 liuxiaocs7 added the backport This PR is a back port of some issue or issues already committed to master label Apr 29, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates the hbase-compression test suite (and related WAL compression tests) to JUnit 5 by migrating legacy JUnit 4 APIs and HBase’s parameterized test template usage to JUnit Jupiter annotations and assertions.

Changes:

  • Migrated many compression-related tests from JUnit 4 (@Test, @BeforeClass, @AfterClass, @Category, Assert/Assume) to JUnit 5 (@Test, @BeforeAll, @AfterAll, @Tag, Assertions/Assumptions).
  • Reworked WAL compression parameterization to use JUnit Jupiter params annotations and changed template tests to regular @Test.
  • Added junit-jupiter-engine to the hbase-compression module’s test dependencies.

Reviewed changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestCompressedWALValueCompression.java Switches WAL value-compression test class to JUnit 5 class-level parameterization annotations.
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestCompressedWAL.java Switches WAL provider test class to JUnit 5 class-level parameterization annotations.
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/CompressedWALTestBase.java Converts template-based tests to plain JUnit 5 @Test methods.
hbase-compression/pom.xml Adds Jupiter engine dependency so JUnit 5 tests can execute.
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestZstdDictionarySplitMerge.java Migrates zstd dictionary split/merge integration test to JUnit 5 APIs.
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestZstdDictionary.java Migrates zstd dictionary unit test to JUnit 5 APIs and assertions.
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestZstdCodec.java Migrates zstd codec tests to JUnit 5 tags and annotations.
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestZstdByteBuffDecompressor.java Migrates zstd ByteBuff decompressor tests to JUnit 5 assertions/tags.
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestWALCompressionZstd.java Migrates zstd WAL compression test lifecycle and tagging to JUnit 5.
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestHFileCompressionZstd.java Migrates zstd HFile compression tests to JUnit 5 lifecycle/tags.
hbase-compression/hbase-compression-snappy/src/test/java/org/apache/hadoop/hbase/io/compress/xerial/TestWALCompressionSnappy.java Migrates snappy WAL compression test to JUnit 5 lifecycle/tags/assumptions.
hbase-compression/hbase-compression-snappy/src/test/java/org/apache/hadoop/hbase/io/compress/xerial/TestSnappyCodec.java Migrates snappy codec tests to JUnit 5 lifecycle/tags/assumptions.
hbase-compression/hbase-compression-snappy/src/test/java/org/apache/hadoop/hbase/io/compress/xerial/TestHFileCompressionSnappy.java Migrates snappy HFile compression tests to JUnit 5 lifecycle/tags/assumptions.
hbase-compression/hbase-compression-lz4/src/test/java/org/apache/hadoop/hbase/io/compress/lz4/TestWALCompressionLz4.java Migrates lz4 WAL compression test lifecycle and tagging to JUnit 5.
hbase-compression/hbase-compression-lz4/src/test/java/org/apache/hadoop/hbase/io/compress/lz4/TestLz4Codec.java Migrates lz4 codec tests to JUnit 5 tags/annotations.
hbase-compression/hbase-compression-lz4/src/test/java/org/apache/hadoop/hbase/io/compress/lz4/TestHFileCompressionLz4.java Migrates lz4 HFile compression tests to JUnit 5 lifecycle/tags.
hbase-compression/hbase-compression-brotli/src/test/java/org/apache/hadoop/hbase/io/compress/brotli/TestWALCompressionBrotli.java Migrates brotli WAL compression test lifecycle and tagging to JUnit 5.
hbase-compression/hbase-compression-brotli/src/test/java/org/apache/hadoop/hbase/io/compress/brotli/TestHFileCompressionBrotli.java Migrates brotli HFile compression tests to JUnit 5 lifecycle/tags.
hbase-compression/hbase-compression-brotli/src/test/java/org/apache/hadoop/hbase/io/compress/brotli/TestBrotliCodec.java Migrates brotli codec tests to JUnit 5 tags/annotations.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestZstdCodec.java Migrates aircompressor zstd codec tests to JUnit 5 tags/annotations.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestWALCompressionZstd.java Migrates aircompressor zstd WAL compression test lifecycle/tags to JUnit 5.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestWALCompressionSnappy.java Migrates aircompressor snappy WAL compression test lifecycle/tags to JUnit 5.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestWALCompressionLzo.java Migrates aircompressor lzo WAL compression test lifecycle/tags to JUnit 5.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestWALCompressionLz4.java Migrates aircompressor lz4 WAL compression test lifecycle/tags to JUnit 5.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestSnappyCodec.java Migrates aircompressor snappy codec tests to JUnit 5 tags/annotations.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestLzoCodec.java Migrates aircompressor lzo codec tests to JUnit 5 tags/annotations.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestLz4Codec.java Migrates aircompressor lz4 codec tests to JUnit 5 tags/annotations.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestHFileCompressionZstd.java Migrates aircompressor zstd HFile compression test lifecycle/tags to JUnit 5.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestHFileCompressionSnappy.java Migrates aircompressor snappy HFile compression test lifecycle/tags to JUnit 5.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestHFileCompressionLzo.java Migrates aircompressor lzo HFile compression test lifecycle/tags to JUnit 5.
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestHFileCompressionLz4.java Migrates aircompressor lz4 HFile compression test lifecycle/tags to JUnit 5.
Comments suppressed due to low confidence (2)

hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestCompressedWALValueCompression.java:1

  • org.junit.jupiter.params.ParameterizedClass and class-level @MethodSource are not part of standard JUnit Jupiter (as of JUnit 5.x commonly used in projects). This is very likely to fail compilation or silently not parameterize the class. Prefer using HBase's existing parameterized template mechanism (the removed @HBaseParameterizedTestTemplate/@TestTemplate) or refactor to JUnit's supported method-level @ParameterizedTest + @MethodSource (e.g., duplicate small wrapper methods in each subclass that delegate to shared helpers) so parameters are actually applied.
    hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestCompressedWALValueCompression.java:1
  • org.junit.jupiter.params.ParameterizedClass and class-level @MethodSource are not part of standard JUnit Jupiter (as of JUnit 5.x commonly used in projects). This is very likely to fail compilation or silently not parameterize the class. Prefer using HBase's existing parameterized template mechanism (the removed @HBaseParameterizedTestTemplate/@TestTemplate) or refactor to JUnit's supported method-level @ParameterizedTest + @MethodSource (e.g., duplicate small wrapper methods in each subclass that delegate to shared helpers) so parameters are actually applied.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…che/hadoop/hbase/io/compress/zstd/TestHFileCompressionZstd.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@liuxiaocs7 liuxiaocs7 merged commit f1c2e6e into apache:branch-2.5 Apr 30, 2026
24 of 25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport This PR is a back port of some issue or issues already committed to master

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants